Field of the Invention
The claimed invention relates to computer aided technologies (CAx) such as computer aided design, engineering, analysis and manufacture in general and apparatus, systems, means, and methods for preventing reference invalidation when reversing operations in synchronous collaborative applications in particular.
Description of the Related Art
Large design and engineering projects require coordination of the efforts of many designers or engineers. Existing CAx systems, however, are not well-suited to collaborative design and editing. Data files cannot simply be shared among several designers without coordinating editing functions and controlling access to features of the object design, because editing conflicts may result in data loss or corruption.
A single-user CAx system that permits undoing and redoing operations typically includes one command history. When the user executes an undo command, the last operation the user performed was the last operation performed on the design model. The same may not be true in a collaborative application. Each user may perform operations on the shared design model, not necessarily aware of the operations other users may be performing at the same time. When a user executes an undo command, their intention is to undo the last command they executed, not an unknown command another user may have executed. However, unbeknownst to the user, between the time the user performed an operation on a feature of the design model and the time they executed an undo of the operation, another user may have performed an operation on the same feature or are related feature, resulting in a syntactic or semantic conflict. Accordingly, the present invention identifies and addresses a need for additional and improved apparatus, systems, means, and methods for preventing reference invalidation when reversing operation in synchronous collaborative applications.